/*
 * To change this template, choose Tools | Templates
 * and open the template in the editor.
 */
package agenda.utils;

import agenda.beans.Evento;
import java.io.File;
import java.io.FileInputStream;
import java.io.FileNotFoundException;
import java.io.FileOutputStream;
import java.io.IOException;
import java.io.ObjectInputStream;
import java.io.ObjectOutputStream;
import java.io.Serializable;
import java.util.ArrayList;
import java.util.logging.Level;
import java.util.logging.Logger;

/**
 *
 * @author rooke
 */
public class Indice implements Serializable {

    private int indice = 1;

    public Indice(){
        if (!new File("indice.dat").exists()) {
            try {
                serializa(this);
            } catch (Exception ex) {
                Logger.getLogger(Indice.class.getName()).log(Level.SEVERE, null, ex);
            }
        }
    }


    public int novoIndice() {
        int retorno = 0;

        try {
            Indice indice = deserializa();
            indice.indice = indice.indice + 1;
            retorno = indice.indice;
            serializa(indice);
        } catch (Exception ex) {
            Logger.getLogger(Indice.class.getName()).log(Level.SEVERE, null, ex);
        }
        return retorno;
    }

    private void serializa(Indice indice) throws FileNotFoundException, IOException, Exception {
        FileOutputStream arq = null;
        ObjectOutputStream out = null;

        arq = new FileOutputStream("indice.dat");

        //objeto que vai escrever os dados
        out = new ObjectOutputStream(arq);

        //escreve todos os dados
        out.writeObject(indice);

        arq.close();
        out.close();

    }

    private Indice deserializa() throws FileNotFoundException, IOException, ClassNotFoundException {

        FileInputStream arqLeitura = null;
        ObjectInputStream in = null;
        Indice indice = null;

        //arquivo onde estao os dados serializados
        arqLeitura = new FileInputStream(getClass().getSimpleName().toLowerCase().concat(".dat"));

        //objeto que vai ler os dados do arquivo
        in = new ObjectInputStream(arqLeitura);

        //recupera os dados
        indice = (Indice) in.readObject();
        arqLeitura.close();
        in.close();



        return indice;

    }
}
